package com.eastfair.venueservice.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.venueservice.dto.ServiceInventoryCheckDTO;
import com.eastfair.venueservice.dto.ServiceInventoryCheckQuery;
import com.eastfair.venueservice.dto.ServiceInventoryCheckSaveDTO;
import com.eastfair.venueservice.entity.ServiceInventoryCheck;
import com.eastfair.venueservice.vo.ServiceInventoryCheckVO;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 盘点记录
 * </p>
 *
 * @author linan
 * @date 2022-09-19
 */
public interface ServiceInventoryCheckService extends SuperService<ServiceInventoryCheck> {
    /**
     * do转vo
     *
     * @param model
     */
    ServiceInventoryCheckVO doToVo(ServiceInventoryCheck model);

    /**
     * do转vo
     *
     * @param modelList
     */
    List<ServiceInventoryCheckVO> doToVos(List<ServiceInventoryCheck> modelList);


    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<ServiceInventoryCheck> list(ServiceInventoryCheckDTO modelDTO, List<Long> ids);

    /**
     * 通用查询
     *
     * @param modelDTO DTO
     * @param ids      主键id集合
     * @return list
     */
    List<ServiceInventoryCheck> listOfCache(ServiceInventoryCheckDTO modelDTO, List<Long> ids);

    /**
     * 新增盘点记录
     *
     * @param serviceInventoryCheckDTO
     * @return
     */
    Boolean saveInventoryCheck(ServiceInventoryCheckDTO serviceInventoryCheckDTO);

    /**
     * 查询盘点记录
     * @param serviceInventoryCheckQuery serviceInventoryCheckQuery
     * @return Page
     */
    Page<ServiceInventoryCheckVO> queryCheckList(PageParams<ServiceInventoryCheckQuery> serviceInventoryCheckQuery);

    /**
     * 查询盘点记录明细
     * @param serviceInventoryCheckQuery
     * @return
     */
    ServiceInventoryCheckVO queryCheckDetailList(ServiceInventoryCheckQuery serviceInventoryCheckQuery);

    /**
     * 修改盘点记录
     * @param serviceInventoryCheckDTO
     * @return
     */
    Boolean updateInventoryCheck(ServiceInventoryCheckDTO serviceInventoryCheckDTO);

    /**
     * 查询新的盘点单号
     * @return
     */
    String queryNewCheckNo();

    /**
     *
     * @param serviceInventoryCheckDTO
     * @return
     */
    Boolean delInventoryCheck(ServiceInventoryCheckDTO serviceInventoryCheckDTO);
}
